-
Notifications
You must be signed in to change notification settings - Fork 53
feat: Schedule Support #368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…into wangbill/schedule-poc
Co-authored-by: Naiyuan Tian <[email protected]>
Co-authored-by: Naiyuan Tian <[email protected]>
Co-authored-by: Naiyuan Tian <[email protected]>
This reverts commit 65db0e2.
|
fyi branch for e2e tests https://github.com/microsoft/durabletask-dotnet/tree/wangbill/schedule-e2e-tests. i added 32 testcases all passing |
sebastianburckhardt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
(I did not review the tests)
changes are updated based on feedback, thanks
cgillum
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added some comments. I'm particularly concerned about the possibility of null-ref exceptions in the Schedule.cs code. We're overriding the nullable reference types checks in ways that seem to open the door for lots of null-ref exceptions.

Schedule Support for Durable Task Framework
Overview
This PR introduces comprehensive scheduling capabilities to the Durable Task Framework, enabling users to create and manage recurring task executions with fine-grained control over timing and execution parameters.
Key Features
Create, pause, resume, update, and delete scheduled tasks
Flexible schedule configuration with support for:
Custom intervals (minimum 1 second)
Start and end times
Immediate or delayed first execution
Custom orchestration instance IDs
Orchestration input parameters
ScheduleCreationOptions for initial setup with required parameters:
scheduleId: Unique identifier for the schedule
orchestrationName: Target orchestration to execute
interval: Time between executions
Optional parameters:
startAt: Custom start time
endAt: Schedule termination time
orchestrationInput: Input data for the orchestration
orchestrationInstanceId: Custom instance ID
startImmediatelyIfLate: Controls immediate execution behavior
Robust state transitions with validation
Schedule status tracking (Active, Paused, etc.)
Execution history tracking:
Last run time
Next scheduled run time
Execution token for operation validation
Clean and intuitive client API through ScheduledTaskClient
Async operations for all schedule management functions
Comprehensive error handling and logging
Support for cancellation tokens
Simple worker configuration through extension methods
Automatic registration of required components:
Schedule entity
Schedule operation orchestrator